package de.bml.versandanzeige;

import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.EditText;

public class GegenstandErstellenActivity extends Activity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.gegenstand_erstellen);
	}

	@Override
	protected void onResume() {
		super.onResume();

		Intent intent = getIntent();

		if (intent.hasExtra(HauptActivity.GEGENSTANDSTYP_EXTRA)) {
			Gegenstandstyp type = Gegenstandstyp.get(intent.getLongExtra(
					HauptActivity.GEGENSTANDSTYP_EXTRA, 0));

			((AutoCompleteTextView) findViewById(R.id.autoCompleteTextView_typ))
					.setText(type.getLabel());
		}

		ArrayAdapter<Gegenstandstyp> adapter = new ArrayAdapter<Gegenstandstyp>(
				this, android.R.layout.simple_dropdown_item_1line,
				Gegenstandstyp.getAll());
		AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView_typ);
		textView.setAdapter(adapter);
	}

	public void ok(View view) {
		String label = ((EditText) findViewById(R.id.editText_label)).getText()
				.toString();
		Gegenstandstyp userTyp = null;
		String userTypLabel = ((AutoCompleteTextView) findViewById(R.id.autoCompleteTextView_typ))
				.getText().toString();
		for (Gegenstandstyp typ : Gegenstandstyp.getAll()) {
			if (typ.getLabel().equals(userTypLabel)) {
				userTyp = typ;
				break;
			}
		}
		if (userTyp == null) {
			userTyp = new Gegenstandstyp(userTypLabel);
		}
		Gegenstand neuerGegenstand = new Gegenstand(userTyp, label,
				((EditText) findViewById(R.id.editText_details)).getText()
						.toString());
		List<Gegenstandstyp> typen = Gegenstandstyp.getAll();
		String eingegebenerTyp = ((EditText) findViewById(R.id.autoCompleteTextView_typ))
				.getText().toString();
		boolean bekannt = false;
		for (Gegenstandstyp typ : typen) {
			if (typ.getLabel().equals(eingegebenerTyp)) {
				bekannt = true;
				break;
			}
		}
		if (!bekannt) {
			Gegenstandstyp.create(eingegebenerTyp);
		}
		Intent data = new Intent();
		data.putExtra(HauptActivity.GEGENSTAND_EXTRA, neuerGegenstand.getId());
		setResult(RESULT_OK, data);
		finish();
	}

	public void abbrechen(View view) {
		finish();
	}

	@Override
	public void onActivityResult(int requestCode, int resultCode, Intent intent) {
		if (resultCode == Activity.RESULT_OK) {
			// If the request went well (OK) and the request was
			switch (requestCode) {
			}
		}
	}
}
